package com.jch.dm.chapter_13_visitor;

import java.util.Iterator;

/**
 * @author: Administrator
 * @create: 2020/04/01 19:31
 **/
public class ListVisitor extends Visitor {

    /**
     * 当前访问的文件夹的名称
     */
    private String currentdir="";

    /**
     * 在访问文件时被调用
     * @param file 文件信息
     */
    @Override
    public void visit(File file) {
        System.out.println(currentdir + "/" + file);
    }

    /**
     * 在访问文件夹时被调用
     * @param dir 文件夹信息
     */
    @Override
    public void visit(Directory dir) {
        System.out.println(currentdir+"/"+dir);
        String savedir=currentdir;
        currentdir = currentdir + "/" + dir.getName();
        Iterator it = dir.iterator();
        while(it.hasNext()){
            Entry entry = (Entry) it.next();
            entry.accept(this);
        }
        currentdir = savedir;
    }
}
